package com.pm.business.mapper;

import java.util.List;

import com.pm.business.domain.BidProjectPresonMap;
import com.pm.business.domain.ProjectPerson;
import com.pm.business.domain.PersonCertificate;
import org.apache.ibatis.annotations.Param;

/**
 * 基本资料管理Mapper接口
 * 
 * @author zxl
 * @date 2022-05-05
 */
public interface ProjectPersonMapper 
{
    /**
     * 查询基本资料管理
     * 
     * @param personId 基本资料管理主键
     * @return 基本资料管理
     */
    public ProjectPerson selectProjectPersonByPersonId(Long personId);

    /**
     * 查询基本资料管理列表
     * 
     * @param projectPerson 基本资料管理
     * @return 基本资料管理集合
     */
    public List<ProjectPerson> selectProjectPersonList(ProjectPerson projectPerson);
    public List<ProjectPerson> selectPersonByType(String personType);
    public Long selectAuditorId(String personName);
    public Long countPersonByName(String personName);

    public List<ProjectPerson> selectLockedStatusByPersonIds(List<Long> personIds);
    /**
     * 新增基本资料管理
     * 
     * @param projectPerson 基本资料管理
     * @return 结果
     */
    public int insertProjectPerson(ProjectPerson projectPerson);
    public List<String> selectPMs();
    public List<String> selectAuditor();

    /**
     * 修改基本资料管理
     * 
     * @param projectPerson 基本资料管理
     * @return 结果
     */
    public int updateProjectPerson(ProjectPerson projectPerson);

    /**
     * 删除基本资料管理
     * 
     * @param personId 基本资料管理主键
     * @return 结果
     */
    public int deleteProjectPersonByPersonId(Long personId);

    /**
     * 批量删除基本资料管理
     * 
     * @param personIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProjectPersonByPersonIds(Long[] personIds);

    /**
     * 批量删除证书管理
     * 
     * @param personIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePersonCertificateByPersonIds(Long[] personIds);
    public List<ProjectPerson> selectProjectPersonByPersonIds(Long[] personIds);
    public List<ProjectPerson> selectOtherProjectProject(@Param("list") List<Long>list, @Param("projectId") Long projectId);
    public List<ProjectPerson> selectOtherCurrentProject(@Param("list") List<Long>list,@Param("projectId") Long projectId);

    /**
     * 批量新增证书管理
     * 
     * @param personCertificateList 证书管理列表
     * @return 结果
     */
    public int batchPersonCertificate(List<PersonCertificate> personCertificateList);
    

    /**
     * 通过基本资料管理主键删除证书管理信息
     * 
     * @param personId 基本资料管理ID
     * @return 结果
     */
    public int deletePersonCertificateByPersonId(Long personId);
}
